1. Field of the Invention
The present invention relates to computer networks and, more specifically, to the flow of messages through a computer network.
2. Background Information
Many organizations, including businesses, governments and educational institutions, utilize computer networks so that employees and others may share and exchange information and/or resources. A computer network typically comprises a plurality of entities interconnected by means of one or more communications media. An entity may consist of any device, such as a computer, that “sources” (i.e., transmits) or “sinks” (i.e., receives) messages, such as data frames, over the communications media. A common type of computer network is a local area network (“LAN”) which typically refers to a privately owned network within a single building or campus. LANs typically employ a data communication protocol (LAN standard), such as Ethernet, FDDI or token ring, that defines the functions performed by data link and physical layers of a communications architecture (i.e., a protocol stack). An exemplary LAN standard is the Institute of Electrical and Electronics Engineers (IEEE) 802 family of protocols, which includes a physical layer, often called Layer 1 (L1), and a data-link layer, often called Layer 2 (L2).
Congestion Control
The IEEE Std. 802.3-2002 protocol includes a provision for responding to congestion within the network. In particular, Annex 31B of IEEE Std. 802.3-2002 describes the MAC Control PAUSE Operation, which is used to inhibit the transmission of data frames for a specified period of time. Suppose, for example, that Stations A and B are interconnected through a computer network. If Station A begins transmitting frames to Station B faster than Station B can process them, the frames will overload Station B's buffer space. In response to this condition, Station B can issue a PAUSE frame. The PAUSE frame can be either a unicast frame addressed to Station B, or a multicast frame sent to a predefined multicast address. The PAUSE frame carries an operation code (opcode) indicating that it is a PAUSE frame, and a timer field that specifies how long the recipient should suspend further traffic to Station A. Upon receiving the PAUSE frame, Station A suspends further transmission of frames to Station B until the specified time period expires. This allows Station B to process the frames in its buffer, thereby freeing space within the buffer to accept additional frames. Although the PAUSE Operation generally works well with some network entities, a need exists for an improved flow control technique that works well with other devices.